package com.gel.shortLink.admin.util;

import java.security.SecureRandom;
import java.util.Random;

public class RandomStringUtils {

    // 定义可选的字符集合（数字 + 大小写字母）
    private static final String CHAR_POOL = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    private static final Random RANDOM = new SecureRandom();

    /**
     * 生成指定位数的随机字符串（包含数字和大小写字母）
     * @param length 字符串长度（这里固定为6）
     * @return 随机字符串
     */
    public static String generate(int length) {
        if (length <= 0) {
            throw new IllegalArgumentException("Length must be positive");
        }

        StringBuilder sb = new StringBuilder(length);
        for (int i = 0; i < length; i++) {
            // 从 CHAR_POOL 中随机选取一个字符
            int index = RANDOM.nextInt(CHAR_POOL.length());
            sb.append(CHAR_POOL.charAt(index));
        }
        return sb.toString();
    }

    // 直接生成6位随机字符串的便捷方法
    public static String generate6Digit() {
        return generate(6);
    }

}